// 入口文件,初始化一个基本的项目服务器
// 导入express
const express = require('express');
// 创建express服务器实例
const app = express();
// 引入body-parser
const bodyParser = require('body-parser')
    // 解决跨域问题用cors
    // 导入并配置cors中间件
    // 导入
const cors = require('cors')
    // 将cors注册为全局中间件
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }))
    // 配置解析表单数据的中间件 注意:只能解析解析 application/x-www-form-urlencoded 格式的表单数据
    // app.use(express.urlencoded({ extended: false }))

// 优化res.send()函数
// 响应数据中间件

app.use((req, res, next) => {
        res.cc = function(err, status = 1, data = {}) {
            res.send({
                data,
                meta: {
                    status,
                    msg: err instanceof Error ? err.message : err
                }
            })
        }
        next();
    })
    // 导入并注册用户路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)

const Joi = require('Joi')
app.use((err, req, res, next) => {
    if (err instanceof Joi.ValidationError) return res.cc(err);
})

// 调用listen方法，开启指定端口的一个服务器
app.listen(8886, () => {
    console.log("服务器已开启");
})